@echo off
rem 切换UTF-8
chcp 65001 1>nul 2>nul

rem echo %*
rem echo %~1
rem echo %~2
rem pause
rem goto:eof

set appPath=%~1
set act=%~2
set appPathMsg="请输入要设置的应用程序路径（例如：d:\apps\xx\yy.exe），需要退出输入exit:"

:checkFile

if "%appPath%"=="" ( 
   set /p appPath=%appPathMsg%
)

REM 判断文件是否存在
if "%appPath%"=="exit" ( 
   goto:eof;
)

if not exist "%appPath%" (
	echo %appPath% 不存在，请输入正确路径
	set /p appPath=%appPathMsg%
	goto:checkFile
)

if %errorlevel%==1 (
    pause
    goto:eof
)

REM 快捷方式名称
set shortcutName=%~3
rem set shortcutNameMsg="请输入快捷方式名称:"

if "%shortcutName%"=="" (
	if "%appPath:~-4%" NEQ ".exe" (
		echo "非法应用，应用的扩展名是exe"
	)
    call :setAppName "%appPath%"
  	rem set /p shortcutName=%shortcutNameMsg%
)
echo --------------------------------------------------------------------
echo            应用程序路径 %appPath%
echo            应用程序名称 %appName%
echo            快捷方式名称 %shortcutName%
echo --------------------------------------------------------------------

if "%act%"=="uninstall" (
    goto:uninstall
)

echo -----------    安装开始    ------------------------------------------------------
echo=

REM 创建开始菜单快捷方式
set createStartMenu=%~4
set createStartMenuMsg="是否创建开始菜单快捷方式(y/n):"
if "%createStartMenu%"=="" (
  	set /p createStartMenu=%createStartMenuMsg%
)

if "%createStartMenu%"=="y" (
	call :startMenuShortcut
)


REM 加入快速启动
set addToQuickStart=%~5
set addToOuickStartMsg="是否加入快速启动(y/n):"

if "%addToQuickStart%"=="" (
  	set /p addToQuickStart=%addToOuickStartMsg%
)
if "%addToQuickStart%"=="y" (
	call :quickStart
)

REM 右键编辑文件
set createEditFile=%~6
set createEditFileMsg="创建右键打开文件(y/n):"

if "%createEditFile%"=="" (
  	set /p createEditFile=%createEditFileMsg%
)
if "%createEditFile%"=="y" (
	call :fileContextMenu
)

echo=
echo -----------    安装完成    ------------------------------------------------------

pause

goto:eof

rem 卸载
:uninstall

echo -----------    卸载开始    ------------------------------------------------------
echo=

call :startMenuShortcut
call :quickStart
call :fileContextMenu

echo=
echo -----------    卸载完成    ------------------------------------------------------

pause

goto:eof

:setAppName
SET shortcutName=%~n1
SET appName=%~nx1
exit /b

REM 创建开始菜单快捷方式
:startMenuShortcut
call %~dp0start_menu_installer.bat "%appPath%" %act% funinvoke
exit /b %errorlevel%

REM 添加应用程序索引[注册表AppPath]
:quickStart
call %~dp0app_path_installer.bat "%appPath%" %act% funinvoke
exit /b %errorlevel%

REM 添加右键打开
:fileContextMenu
call %~dp0edit_file_installer.bat "%appPath%" %act% funinvoke
exit /b %errorlevel%